home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_01_05 / 1n05014a < prev    next >
Text File  |  1990-08-20  |  834b  |  37 lines

  1. #include <dos.h>
  2.  
  3. unsigned _stklen = {0};
  4. void exit(int i) { extern void _exit(int); _exit(i); }
  5. void _setargv() {}
  6. void _setenvp() {}
  7. void tsr(int);
  8. void interrupt int7e();
  9.  
  10. /* p8514 - load tsr to service interrupt 0x7E */
  11.  
  12. void main()
  13. {
  14.       int kt;
  15.  
  16.       /* do nothing if int 0x7E already in use */
  17.       _AX = 0x3500+0x7E;
  18.       geninterrupt(0x21);
  19.       if (_BX != 0 || _ES != 0) exit(1);
  20.  
  21.       /* set interrupt pointer */
  22.       asm push ds
  23.       _DS = FP_SEG(int7e);
  24.       _DX = FP_OFF(int7e);
  25.       _AX = 0x2500+0x7E;
  26.       geninterrupt(0x21);
  27.       asm pop ds
  28.  
  29.       /* say we are done */
  30.       for (kt = 0;; kt++) {
  31.         _AX = 0x0E00+"p8514 ready\r\n"[kt];
  32.         if ((_AX & 0x00FF) == 0) break;
  33.         geninterrupt(0x10);
  34.       }
  35.       tsr(0); /* terminate and stay resident */
  36. }
  37.